package cn.com.self.apis.response;

import lombok.Getter;
import lombok.Setter;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;

import java.io.Serializable;

@Getter
@Setter
public class Result extends ResponseEntity implements Serializable {

    private int code; // 200是正常，非200表示异常
    private String msg;
    private Object data;

    public Result(HttpStatus status) {
        super(status);
    }

    public static Result succ(Object data) {
        return succ(200, "操作成功", data);
    }

    public static Result succ(int code, String msg, Object data) {
        Result r = new Result(HttpStatus.OK);
        r.setCode(code);
        r.setMsg(msg);
        r.setData(data);
        return r;
    }

    public static Result fail(String msg) {
        return fail(400, msg, null);
    }

    public static Result fail(String msg, Object data) {
        return fail(400, msg, data);
    }

    public static Result fail(int code, String msg, Object data) {
        Result r = new Result(HttpStatus.BAD_REQUEST);
        r.setCode(code);
        r.setMsg(msg);
        r.setData(data);
        return r;
    }

}
